# 2.1 简介
# 集合（set）与字典相同均存储 key，但也只存储 key，因 key 不可重复，所以 set 的中的值不可重复，也是无序的。
# 2.2 使用
# 集合使用花括号 {} 或者 set() 函数创建，如果创建空集合只能使用 set() 函数，以创建集合 s 为例，如下所示：
s = {'a', 'b', 'c'}
print(type(s))
# list -> set 调用set()函数
s1 = set(['a', 'b', 'c'])
print(type(s1))
s2 = set()
print(type(s2))
s3 = {}
print(type(s3))
# 集合中重复的元素会被自动过滤掉
s = {'a', 'b', 'c', 'b', 'c', 'b', 'c'}
print(s)
# 添加元素可以使用 add 或 update 方法，如果元素已经存在，则不进行操作，如下所示：
s.add('d')
s.update("e")
print(s)
# 删除元素使用 remove 方法，
s.remove('a')
print(s)
# 清空集合使用 clear 方法
# s.clear()
print(s)
# s.remove('d')
# 获取集合的长度，同样使用 len 方法
print(len(s))
# max min 方法
print(max(s))
print(min(s))
# in 成员运算符
print('e' in s)
print('s' * 20)
# 集合创建
s = set()
print(s, type(s))
s = {1, 2, 3, 4, 5, 6, 7}
print(s, type(s))
# list -> set
s = set([1, 2, 3, 5, 6])
print(s, type(s))
# tuple -> set
s = set((1, 2, 3, 5, 6))
print(s, type(s))
# str -> set
s = set("(1, 2, 3, 5, 6)")
print(s, type(s))
# dict -> set 只存储 key
s = set({1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'})
print(s, type(s))
# in
print(1 in s)
# len
print(len(s))
# min max
print(min(s))
print(max(s))
# del 删除集合
# del s
# print(s)
# 集合的遍历
for i in s:
    print(i)
# for i in range(len(s)):
#     print(s[i])
# 常用方法
# remove()方法的作用是删除集合中的元素，如果该元素不存在，则会报错。
s.remove(1)
print(s)
# update()方法的作用是合并两个集合并返回合并后的集合。
s.update({2, 3, 4, 5, 6})
print(s)
# add()方法的作用是向集合添加元素。
s.add(7)
print(s)
# 交集 并集 差集
# 差集获取一个集合中存在但不在另一个集合（或多个集合）中的所有唯一元素。
s2 = {5, 6, 7, 8, 9}
print(s2)
print("jjjjjjjjjjj", s - s2)
print(s & s2)
print(s | s2)



# 列表去重
score = [80, 70, 60, 80, 90, 80, 70, 60, 80, 90]
print(set(score))
d = {23}
print(type(d))
